A plug-in (also referred to as an add-on, add-in, snap-in, or extension) is typically a computer program that interacts with a core application or service platform, such as a web browser or other applications, to provide certain functions on demand. A plug-in typically complies with prescribed access requirements to a service platform and executables on the service platform. Examples of plug-ins include Dynamic Linkable Libraries (DLLs).
Instant Messaging (IM) refers to a service capable of instant transmission and reception of messages over the Internet. The IM software can provide knowledge of whether a contact is online as well as exchanging instant messages with the online contact. As used herein, a client on which the IM software is installed is referred to as an IM client. In practice, an IM client sometimes needs to download a plug-in to extend its capabilities.
Currently, an IM client downloads a plug-in using a point-to-point approach. Typically, there is a seed server for recording which clients possess what plug-in resources, address information of the respective clients (e.g., a Media Access Control (MAC) address, an Internet Protocol (IP) address, etc., of each client), etc. A client intending to download a plug-in resource may retrieve a “seed”, i.e., a list of the plug-in resources, and attempt to connect to and download the required plug-in from a plug-in download server according to plug-in information recorded in the seed by the seed server.
As can be seen from the foregoing process, the existing approach of downloading a plug-in requires provision of the corresponding seed from the seed server, which occupies a significant amount of network resource. Moreover, the client has to update the latest plug-in information to the seed server upon completion of downloading and installing the plug-in, which may further increase the cost of maintaining the seed server and complicate the operations.